/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package m12cqis01.nhathv.util;

/**
 * Chuyen tieng viet co dau thanh tieng viet khong dau
 *
 * @author Vu Nhat
 */
public class BoDauTiengViet {

    private static final String[] SPECIAL_CHARACTERS = {
        "ấ", "ầ", "ẩ",
        "ẫ", "ậ", "ắ", "ằ", "ẳ",
        "ẵ", "ặ",
        "ế", "ề", "ể",
        "ễ", "ệ",
        "ố", "ồ", "ổ",
        "ỗ", "ộ", "ớ", "ờ", "ở",
        "ỡ", "ợ",
        "ứ", "ừ", "ử",
        "ữ", "ự",
        "đ", "â", "ă", "ê", "ô",
        "ơ", "ư", "á", "à", "ả",
        "ã", "ạ",  "é", "è", "ẻ",
        "ẽ", "ẹ",  "í", "ì", "ỉ",
        "ĩ", "ị", "ó", "ò", "ỏ",
        "õ", "ọ",  "ú", "ù", "ủ",
        "ũ", "ụ",  "ý", "ỳ", "ỷ",
        "ỹ", "ỵ",
        // special chars
        // "+", "-", "?"
    };

    private static final String[] REPLACEMENTS = {
        "a61", "a62", "a63",
        "a64", "a65", "a81", "a82", "a83",
        "a84", "a85",
        "e61", "e62", "e63",
        "e64", "e65",
        "o61", "o62", "o63",
        "o64", "o65", "o71", "o72", "o73",
        "o74", "o75",
        "u71", "u72", "u73",
        "u74", "u75",
        "d9", "a6", "a8", "e6", "o6",
        "o7", "u7", "a1", "a2", "a3",
        "a4", "a5",  "e1", "e2", "e3",
        "e4", "e5",  "i1", "i2", "i3",
        "i4", "i5", "o1", "o2", "o3",
        "o4", "o5",  "u1", "u2", "u3",
        "u4", "u5",  "y1", "y2", "y3",
        "y4", "y5",
        // special chars
        // "", "", ""
    };

    public static String toUnicodeVNI(String text) {

        for (int i = 0; i < SPECIAL_CHARACTERS.length; i++) {
            text = text.replace(SPECIAL_CHARACTERS[i], REPLACEMENTS[i]);
//            text = text.replace(SPECIAL_CHARACTERS[i].toUpperCase(), REPLACEMENTS[i].toUpperCase());
        }
        return text;
    }    
    
    public static String toVietNamNatural(String text) {

        for (int i = 0; i < SPECIAL_CHARACTERS.length; i++) {
            text = text.replace(REPLACEMENTS[i], SPECIAL_CHARACTERS[i]);
//            text = text.replace(SPECIAL_CHARACTERS[i].toUpperCase(), REPLACEMENTS[i].toUpperCase());
        }
        return text;
    }

    public static void main(String[] args) {
        String a = "tủ_lạnh/máy_lạnh/tủ_đông sharp/samsung/lg xxx/yyy/zzz có kích thước/ công suất/ giá bán (là bao nhiêu?)";
        BoDauTiengViet bd = new BoDauTiengViet();
        System.out.println(bd.toUnicodeVNI(a));      
    }
}
